# -*- coding: utf-8 -*-
from django.db import models


class Liquidacion(models.Model):
    periodo = models.DateField(u'Período')
    total_remunerativo = models.DecimalField(max_digits=15, decimal_places=2)
    empleado = models.ForeignKey('gente.Empleado')

    class Meta:
        verbose_name_plural = u'Liquidaciones'

    def __unicode__(self):
        return '%s %s' % (self.periodo, self.empleado)


class Concepto(models.Model):
    tipo = models.CharField(max_length=50)
    descripcion = models.TextField(blank=True)
    deduccion = models.BooleanField(u'Deducción')

    def __unicode__(self):
        nombre = self.tipo
        if self.deduccion:
            nombre = u'%s (deduccion)' % nombre
        return nombre


class LiquidacionDetalle(models.Model):
    liquidacion = models.ForeignKey(Liquidacion)
    concepto = models.ForeignKey(Concepto)
    importe = models.DecimalField(max_digits=15, decimal_places=2)

    class Meta:
        verbose_name = u'Detalle de Liquidación'
        verbose_name_plural = u'Detalles de Liquidación'

    def __unicode__(self):
        return '%s: %s' % (self.concepto, self.importe)

    def save(self, *args, **kwargs):
        if self.concepto.deduccion and self.importe > 0:
            self.importe *= -1
        return super(LiquidacionDetalle, self).save(*args, **kwargs)
